package LeetCode.LeetCode2;

/**
 * 长度最小的子数组
 * @author lumin
 * @date 2022/04/05 16:38
 **/
public class Num209 {
    public static int minSubArrayLen(int target, int[] nums) {
        int i = 0;
        int j = 0;
        int minLength = Integer.MAX_VALUE;
        int sum = 0;
        while(j < nums.length){
            sum += nums[j];
            while (sum >= target){
                minLength = Math.min(minLength, j - i + 1);
                sum -= nums[i];
                i++;
            }
            j++;
        }
        return minLength;
    }

//    public static int minSubArrayLen(int target, int[] nums) {
//        int i = 0;
//        int minNum = Integer.MAX_VALUE;
//        while(i < nums.length){
//            int j = i;
//            int sum = 0;
//            while(j < nums.length){
//                sum += nums[j];
//                if(sum >= target){
//                    minNum = Math.min(minNum,Math.abs(i - j) + 1);
//                    break;
//                }
//                j++;
//            }
//            i++;
//        }
//        if(minNum == Integer.MAX_VALUE){
//            return 0;
//        }
//        return minNum;
//    }


    public static void main(String[] args) {
        int[] nums = {2,3,1,2,4,3};
        System.out.println(minSubArrayLen(7,nums));
    }
}